home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / GW AdaEd 1.4.2 / GWAdaDemos / NYUDemos / EN.ADA < prev    next >
Text File  |  1993-01-31  |  1KB  |  51 lines

  1. -- DEMONSTRATION EXAMPLE:
  2. --   Features:
  3. --     Enumeration types, ENUM_IO (generic package),
  4. --     arrays, dynamic exception handling, etc.
  5.  
  6. with TEXT_IO; use TEXT_IO;
  7. procedure en is
  8.  
  9.    type COLOR is (red, yellow, green, blue);
  10.    package COLOR_IO is new ENUMERATION_IO(COLOR);
  11.  
  12.    ANSWER : constant array (red .. blue) of string (1..10) :=
  13.             ("Anger     ", "The Sun   ", "Ada       ",
  14.              "The Sky   ");
  15.  
  16.    procedure DIALOGUE is
  17.       use COLOR_IO;
  18.       CHOICE : COLOR;
  19.  
  20.       function ENTER_COLOR return COLOR is
  21.          CHOICE : COLOR;
  22.       begin
  23.          loop
  24.             declare
  25.             begin
  26.                put_line("Select a color:");
  27.                get(CHOICE);
  28.                return CHOICE;
  29.             exception
  30.                when DATA_ERROR =>
  31.                   put_line("Invalid color, try again.  ");
  32.             end;
  33.          end loop;
  34.       end ENTER_COLOR;
  35.  
  36.    begin -- body of DIALOGUE
  37.       loop
  38.      CHOICE := ENTER_COLOR;
  39.          put(CHOICE, SET => LOWER_CASE);
  40.          put_line(" => " & ANSWER(CHOICE));
  41.       end loop;
  42.       
  43.    end DIALOGUE;
  44.  
  45. begin
  46.    DIALOGUE;
  47.  
  48. exception
  49.    when END_ERROR => put_line("End of dialogue.");
  50. end en;
  51.